/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package gamecomponents.skeletontesthelper;

/**
 *
 * @author Zsolooo
 */
public class Parameter {
    /**
     * A típus Stringben tárolva.
     */
    private String type;


    /**
     * A típus által hordozott érték, ha a menedzselt típus értéktípus, ha nem akkor null.
     */
    private String value;


    /**
     * A típus sokatmondó neve.
     */
    private String name;
    
    
    /**
     * Tárolja, hogy a menedzselt típus referencia, vagy értéktípusú-e.
     */
    private boolean isReferenceType;

    /**
     * Null-e?
     */
   private boolean isNull;
    /**
     * Int típusú Paraméter.
     * @param _name
     * @param _value
     */
    public Parameter(String _name, int _value){
        type= "int";
        value = String.valueOf(_value);
        name=_name;
        isReferenceType=false;
        isNull=false;
    }

    /**
     * Boolean típusú Paraméter.
     * @param _name
     * @param _value
     */
    public Parameter(String _name, boolean _value){
        type= "boolean";
        value = String.valueOf(_value);
        name=_name;
        isReferenceType=false;
        isNull=false;
    }

    /**
     * Referencia típus konstruktora.
     * @param obj
     */
    public Parameter(Object obj){
        if(obj !=null){
            type=obj.getClass().getSimpleName();
            name=Assistant.getObjectsName(obj);
            value=null;
            isReferenceType=true;
            isNull=false;
        }else{
            isReferenceType=true;
            isNull=true;
        }

    }

    /**
     * Visszaadja, hogy NULL-e
     * @return
     */
    public boolean isNull(){
        return isNull;
    }
    /**
     *
     * @return Visszaadja, hogy az adott Paraméter referenciatípus-t menedzsel(true) vagy nem (false)
     */
    public boolean isReferenceType(){
        return isReferenceType;
    }

    /**
     *
     */

    /**
     * @return the type
     */
    public String getType() {
        return type;
    }


    /**
     * @param type the type to set
     */
    private void setType(String type) {
        this.type = type;
    }

    /**
     * @return the value
     */
    public String getValue() {
        return value;
    }

    /**
     * @param value the value to set
     */
    public void setValue(String value) {
        this.value = value;
    }

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }
}
